/**
 * 格式化函数 ， 给日期格式化
 * date为 new Date()对象， fmt为 'yyyy-MM-dd hh:mm:ss'的格式
 */
export function formatDate(date: Date, fmt: string = 'yyyy-MM-dd hh:mm:ss') {
  //获取年份
  if (/(y+)/.test(fmt)) {
    // 把数字变成字符串
    let dateY: any = date.getFullYear() + "";
    //RegExp.$1 在判断中出现过，且是括号括起来的，所以 RegExp.$1 就是 "yyyy"
    fmt = fmt?.replace(RegExp?.$1, dateY?.substr(4 - RegExp?.$1?.length));
  }

  //获取其他
  let o = {
    "M+": date.getMonth() + 1,
    "d+": date.getDate(),
    "h+": date.getHours(),
    "m+": date.getMinutes(),
    "s+": date.getSeconds(),
  };
  for (const k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + "";
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? str : ("00" + str)?.substr(str.length)
      );
    }
  }
  return fmt;
}
